package com.raitcon.hibernate.bean;
// Generated 27/05/2014 07:54:56 AM by Hibernate Tools 3.2.1.GA


import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Asignatura generated by hbm2java
 */
@Entity
@Table(name="asignatura"
    ,schema="public"
)
public class Asignatura  implements java.io.Serializable {


     private long idAsignatura;
     private Area area;
     private String descripcion;
     private String abreviatura;
     private Integer tipoAsignatura;
     private Set<CriterioEvalAsig> criterioEvalAsigs = new HashSet<CriterioEvalAsig>(0);
     private Set<Nota> notas = new HashSet<Nota>(0);
     private Set<GradoSeccion> gradoSeccions = new HashSet<GradoSeccion>(0);

    public Asignatura() {
    }
    
    public Asignatura(long idAsignatura ) {
        this.idAsignatura = idAsignatura;
        
    }
	
    public Asignatura(long idAsignatura, Area area, String descripcion) {
        this.idAsignatura = idAsignatura;
        this.area = area;
        this.descripcion = descripcion;
    }
    public Asignatura(long idAsignatura, Area area, String descripcion, String abreviatura, Set<CriterioEvalAsig> criterioEvalAsigs, Set<Nota> notas, Set<GradoSeccion> gradoSeccions) {
       this.idAsignatura = idAsignatura;
       this.area = area;
       this.descripcion = descripcion;
       this.abreviatura = abreviatura;
       this.criterioEvalAsigs = criterioEvalAsigs;
       this.notas = notas;
       this.gradoSeccions = gradoSeccions;
    }
   
     @Id 
    
    @Column(name="id_asignatura", unique=true, nullable=false)
    public long getIdAsignatura() {
        return this.idAsignatura;
    }
    
    public void setIdAsignatura(long idAsignatura) {
        this.idAsignatura = idAsignatura;
    }
@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="id_area", nullable=false)
    public Area getArea() {
        return this.area;
    }
    
    public void setArea(Area area) {
        this.area = area;
    }
    
    @Column(name="descripcion", nullable=false)
    public String getDescripcion() {
        return this.descripcion;
    }
    
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }
    
    @Column(name="abreviatura")
    public String getAbreviatura() {
        return this.abreviatura;
    }
    
    public void setAbreviatura(String abreviatura) {
        this.abreviatura = abreviatura;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="asignatura")
    public Set<CriterioEvalAsig> getCriterioEvalAsigs() {
        return this.criterioEvalAsigs;
    }
    
    public void setCriterioEvalAsigs(Set<CriterioEvalAsig> criterioEvalAsigs) {
        this.criterioEvalAsigs = criterioEvalAsigs;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="asignatura")
    public Set<Nota> getNotas() {
        return this.notas;
    }
    
    public void setNotas(Set<Nota> notas) {
        this.notas = notas;
    }
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="asignatura")
    public Set<GradoSeccion> getGradoSeccions() {
        return this.gradoSeccions;
    }
    
    public void setGradoSeccions(Set<GradoSeccion> gradoSeccions) {
        this.gradoSeccions = gradoSeccions;
    }

    /**
     * @return the tipoAsignatura
     */
    @Column(name="tipo_asignatura", nullable=false)
    public Integer getTipoAsignatura() {
        return tipoAsignatura;
    }

    /**
     * @param tipoAsignatura the tipoAsignatura to set
     */
    public void setTipoAsignatura(Integer tipoAsignatura) {
        this.tipoAsignatura = tipoAsignatura;
    }




}


